import dayjs from 'dayjs';
import { useTable, LIST_TYPE } from '@crud/index';
import { getList } from '@/api/crm-dyj/order';
import { toolOptions2Map, toolGetDefaultDate } from '@/utils';

// 查询

export const filterOptions = [
  // { label: '抖音昵称', value: 'author' },
  { label: '订单ID', value: 'out_trade_no' },
  // { label: '群峰手机号', value: 'mobile' },
  { label: '大赢加手机号', value: 'leader_mobile' }
];

// 会员类别
export const vipTitleOptions = [
  { label: '不限', value: '' },
  { label: '月卡VIP', value: '月卡VIP' },
  { label: '月卡SVIP', value: '月卡SVIP' },
  { label: '年卡VIP', value: '年卡VIP' },
  { label: '年卡SVIP', value: '年卡SVIP' },
  { label: '至尊会员(10人版)', value: '至尊会员(10人版)' },
  { label: '至尊会员(20人版)', value: '至尊会员(20人版)' },
  { label: '至尊会员(30人版)', value: '至尊会员(30人版)' },
  { label: '至尊会员(40人版)', value: '至尊会员(40人版)' },
  { label: '至尊会员(50人版)', value: '至尊会员(50人版)' },
  { label: '至尊会员(80人版)', value: '至尊会员(80人版)' },
  { label: '至尊会员(100人版)', value: '至尊会员(100人版)' }
];
// 付款方式
export const payTypeOptions = [
  { label: '不限', value: '' },
  { label: '群峰', value: 4 },
  { label: '代付', value: 6 },
  { label: '对公转账', value: 5 },
  { label: '微信', value: 2 },
  { label: '支付宝', value: 1 }
];

export const filterMap = toolOptions2Map(filterOptions);
export const payTypeMap = toolOptions2Map(payTypeOptions);

// 表格
export const useTableList = (options: any = {}) => {
  const columns = [
    { label: '订单ID', prop: 'out_trade_no', width: 200, fixed: 'left' },
    // { label: '抖音昵称', prop: 'author', minWidth: 160, showOverflowTooltip: true },
    // { label: '群峰手机号', prop: 'mobile', width: 120 },
    { label: '大赢加手机号', prop: 'leader_mobile', minWidth: 130 },
    { label: '会员规格', prop: 'vip_title', width: 150, showOverflowTooltip: true },
    { label: '支付金额', prop: 'amount', width: 120, type: 'price' },
    { label: '付款方式', prop: 'pay_type', width: 120, render: (s: any) => payTypeMap[s.row.pay_type] },
    { label: '付款时间', prop: 'pay_time', width: 177, type: 'dateTime' },
    { label: '1级渠道', prop: 'xsource', width: 160, showOverflowTooltip: true },
    { label: '2级渠道', prop: 'xterm', width: 160, showOverflowTooltip: true },
    { label: '代理商名称', prop: 'colonel_name', minWidth: 160, showOverflowTooltip: true },
    { label: '讲师名称', prop: 'agent_name', minWidth: 120, showOverflowTooltip: true },
    { label: '订单备注', prop: 'order_note', minWidth: 160, showOverflowTooltip: true },
    { label: '操作', align: 'center', width: 120, render: 'actions', fixed: 'right' }
  ];

  return useTable({
    ...options,
    type: LIST_TYPE.DYJ,
    params: {
      _dateRange: toolGetDefaultDate,
      _filterType: 'out_trade_no',
      _keyword: undefined,
      vip_title: undefined, // 会员类别
      pay_type: undefined, // 付款方式
      xsource: undefined, // 一级渠道
      xterm: undefined, // 二级渠道
      pay_start_time: undefined, // 付款开始时间(含),单位秒
      pay_end_time: undefined // 付款结束时间(不含),单位秒
    },
    columns: columns,
    getParams: ({ _dateRange = [], _filterType, _keyword, ...params }) => {

      if (_dateRange && _dateRange.length) {
        params.pay_start_time = dayjs(_dateRange[0]).startOf('day').format('X');
        params.pay_end_time = dayjs(_dateRange[1]).endOf('day').format('X');
      }

      if (_keyword && _filterType) {
        params[_filterType] = _keyword;
      }

      return params;
    },
    getList
  });
};
